import rospy
from std_msgs.msg import String

""" 
需求:
    消息发布方:
        循环发布信息:HelloWorld 后缀数字编号
"""

"""
步骤：
    1.导包 
    2.初始化 ROS 节点:命名(唯一)
    3.实例化 发布者 对象
    4.组织被发布的数据，并编写逻辑发布数据
"""

if __name__ == "__main__":
    # 初始化 ROS 节点:命名(唯一)
    rospy.init_node("talker_py")
    # 实例化 发布者 对象
    #参数1: 要发布到的话题
    #参数2: 发布的消息类型
    #参数3: 队列中最大保存的消息数，超出此阀值时，先进的先销毁(时间早的先销毁)
    pub = rospy.Publisher(name="first_topic", data_class=String,queue_size=10)
    # 组织被发布的数据，并编写逻辑发布数据
    msg = String()  #创建 msg 对象
    imformation = "HelloWorld "
    count = 0  #计数器
    # 设置循环频率
    rate = rospy.Rate(1)
    while not rospy.is_shutdown():
        # 拼接字符
        msg.data = imformation + str(count)
        # 发布消息
        pub.publish(msg)
        rate.sleep()
        rospy.loginfo("发布的消息为:%s", msg.data)
        count += 1

"""
    配置CMakeLists.txt
    catkin_install_python(PROGRAMS
    scripts/文件名称.py
    DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
    )
"""
